package com.zretc.kscxmz.mappers;

import com.zretc.kscxmz.entity.Comment;
import com.zretc.kscxmz.entity.Discuss;
import com.zretc.kscxmz.entity.Reply;
import org.apache.ibatis.annotations.Param;
import org.omg.CORBA.INTERNAL;

import java.util.List;
import java.util.Map;

/**
 * @author zengyanjun
 * @date 2020-07-25
 */
public interface DiscussMapper {
    /**
     * 添加讨论信息
     */
    int insert(Discuss discuss);
    /**
     * 修改讨论信息
     */
    int update(Discuss discuss);
    /**
     * 删除指定用户创建的讨论
     */
    int delete(Integer mailAccountId);
    /**
     * 查询(包括查全部和查关键字)
     */
    List<Discuss> find(Map<String,String> map);
    /**
     * 通过id查找相应的内容
     */
    Discuss findById(Integer discussId);

    /**
     * 用过id查找相应的内容，包括回复列表
     * @param discussId
     * @return
     */
    Discuss findDiscussDetailsById(Integer discussId);

    /**
     * 增加指定讨论id的访问数
     * @param discussId
     * @return
     */
    int addVisitNum(@Param("discussId") Integer discussId,@Param("visitNum") Integer visitNum);

    /**
     * 查找指定回复的详细信息
     * @param discussId
     * @return
     */
    List<Reply> findReplyDetailsById(@Param("discussId") Integer discussId);

    /**
     * 查找指定回复id的评论详细信息
     * @param replyId
     * @return
     */
    List<Comment> findCommentDetailsById(@Param("replyId") Integer replyId);

    /**
     * 删除指定的评论
     * @param commentId
     * @return
     */
    int deleteCommentById(Integer commentId);

    /**
     * 删除指定的回复
     * @param replyId
     * @return
     */
    int deleteReplyById(Integer replyId);

    /**
     * 添加评论
     * @param replayId
     * @param userId
     * @param content
     * @return
     */
    int addComment(@Param("replayId") Integer replayId,@Param("userId") Integer userId,@Param("content") String content);

    /**
     * 添加回复
     * @param discussId
     * @param userId
     * @param content
     * @return
     */
    int addReply(@Param("discussId") Integer discussId,@Param("userId") Integer userId,@Param("content") String content);

    /**
     * 根据回复id删除指定的评论
     * @param replayId
     * @return
     */
    int deleteCommentByReplyId(Integer replayId);

}
